CVE-2021-46974
"Linux Kernel BPF Invert Register Vulnerability"
Description
In the Linux kernel, the following vulnerability has been resolved: bpf: Fix masking negation logic upon negative dst register The negation logic for the case where the off_reg is sitting in the dst register is not correct given then we cannot just invert the add to a sub or vice versa. As a fix, perform the final bitwise and-op unconditionally into AX from the off_reg, then move the pointer from the src to dst and finally use AX as the source for the original pointer arithmetic operation such that the inversion yields a correct result. The single non-AX mov in between is possible given constant blinding is retaining it as it's not an immediate based operation.
INFO
Published Date :
Feb. 27, 2024, 7:04 p.m.
Last Modified :
Jan. 9, 2025, 3 p.m.
Remotely Exploit :
No
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS Scores
Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
---|---|---|---|---|---|---|
CVSS 3.1 | MEDIUM | [email protected] |
Solution
- Update the Linux kernel to a patched version.
- Reboot the system to apply the kernel update.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2021-46974
.
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2021-46974
is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2021-46974
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2021-46974
vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2021-46974
vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
Initial Analysis by [email protected]
Jan. 09, 2025
Action Type Old Value New Value Added CVSS V3.1 NIST AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H Added CWE NIST NVD-CWE-noinfo Added CPE Configuration OR *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 4.14.113 up to (excluding) 4.14.233 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 4.19.19 up to (excluding) 4.19.190 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.0 up to (excluding) 5.4.117 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.5 up to (excluding) 5.10.35 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.11 up to (excluding) 5.11.19 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.12 up to (excluding) 5.12.2 Changed Reference Type https://git.kernel.org/stable/c/0e2dfdc74a7f4036127356d42ea59388f153f42c No Types Assigned https://git.kernel.org/stable/c/0e2dfdc74a7f4036127356d42ea59388f153f42c Patch Changed Reference Type https://git.kernel.org/stable/c/0e2dfdc74a7f4036127356d42ea59388f153f42c No Types Assigned https://git.kernel.org/stable/c/0e2dfdc74a7f4036127356d42ea59388f153f42c Patch Changed Reference Type https://git.kernel.org/stable/c/2cfa537674cd1051a3b8111536d77d0558f33d5d No Types Assigned https://git.kernel.org/stable/c/2cfa537674cd1051a3b8111536d77d0558f33d5d Patch Changed Reference Type https://git.kernel.org/stable/c/2cfa537674cd1051a3b8111536d77d0558f33d5d No Types Assigned https://git.kernel.org/stable/c/2cfa537674cd1051a3b8111536d77d0558f33d5d Patch Changed Reference Type https://git.kernel.org/stable/c/4d542ddb88fb2f39bf7f14caa2902f3e8d06f6ba No Types Assigned https://git.kernel.org/stable/c/4d542ddb88fb2f39bf7f14caa2902f3e8d06f6ba Patch Changed Reference Type https://git.kernel.org/stable/c/4d542ddb88fb2f39bf7f14caa2902f3e8d06f6ba No Types Assigned https://git.kernel.org/stable/c/4d542ddb88fb2f39bf7f14caa2902f3e8d06f6ba Patch Changed Reference Type https://git.kernel.org/stable/c/53e0db429b37a32b8fc706d0d90eb4583ad13848 No Types Assigned https://git.kernel.org/stable/c/53e0db429b37a32b8fc706d0d90eb4583ad13848 Patch Changed Reference Type https://git.kernel.org/stable/c/53e0db429b37a32b8fc706d0d90eb4583ad13848 No Types Assigned https://git.kernel.org/stable/c/53e0db429b37a32b8fc706d0d90eb4583ad13848 Patch Changed Reference Type https://git.kernel.org/stable/c/6eba92a4d4be8feb4dc33976abac544fa99d6ecc No Types Assigned https://git.kernel.org/stable/c/6eba92a4d4be8feb4dc33976abac544fa99d6ecc Patch Changed Reference Type https://git.kernel.org/stable/c/6eba92a4d4be8feb4dc33976abac544fa99d6ecc No Types Assigned https://git.kernel.org/stable/c/6eba92a4d4be8feb4dc33976abac544fa99d6ecc Patch Changed Reference Type https://git.kernel.org/stable/c/7cf64d8679ca1cb20cf57d6a88bfee79a0922a66 No Types Assigned https://git.kernel.org/stable/c/7cf64d8679ca1cb20cf57d6a88bfee79a0922a66 Patch Changed Reference Type https://git.kernel.org/stable/c/7cf64d8679ca1cb20cf57d6a88bfee79a0922a66 No Types Assigned https://git.kernel.org/stable/c/7cf64d8679ca1cb20cf57d6a88bfee79a0922a66 Patch Changed Reference Type https://git.kernel.org/stable/c/b9b34ddbe2076ade359cd5ce7537d5ed019e9807 No Types Assigned https://git.kernel.org/stable/c/b9b34ddbe2076ade359cd5ce7537d5ed019e9807 Patch Changed Reference Type https://git.kernel.org/stable/c/b9b34ddbe2076ade359cd5ce7537d5ed019e9807 No Types Assigned https://git.kernel.org/stable/c/b9b34ddbe2076ade359cd5ce7537d5ed019e9807 Patch -
CVE Modified by af854a3a-2127-422b-91ae-364da2661108
Nov. 21, 2024
Action Type Old Value New Value Added Reference https://git.kernel.org/stable/c/0e2dfdc74a7f4036127356d42ea59388f153f42c Added Reference https://git.kernel.org/stable/c/2cfa537674cd1051a3b8111536d77d0558f33d5d Added Reference https://git.kernel.org/stable/c/4d542ddb88fb2f39bf7f14caa2902f3e8d06f6ba Added Reference https://git.kernel.org/stable/c/53e0db429b37a32b8fc706d0d90eb4583ad13848 Added Reference https://git.kernel.org/stable/c/6eba92a4d4be8feb4dc33976abac544fa99d6ecc Added Reference https://git.kernel.org/stable/c/7cf64d8679ca1cb20cf57d6a88bfee79a0922a66 Added Reference https://git.kernel.org/stable/c/b9b34ddbe2076ade359cd5ce7537d5ed019e9807 -
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
May. 28, 2024
Action Type Old Value New Value -
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
May. 14, 2024
Action Type Old Value New Value -
CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Feb. 27, 2024
Action Type Old Value New Value Added Description In the Linux kernel, the following vulnerability has been resolved: bpf: Fix masking negation logic upon negative dst register The negation logic for the case where the off_reg is sitting in the dst register is not correct given then we cannot just invert the add to a sub or vice versa. As a fix, perform the final bitwise and-op unconditionally into AX from the off_reg, then move the pointer from the src to dst and finally use AX as the source for the original pointer arithmetic operation such that the inversion yields a correct result. The single non-AX mov in between is possible given constant blinding is retaining it as it's not an immediate based operation. Added Reference Linux https://git.kernel.org/stable/c/4d542ddb88fb2f39bf7f14caa2902f3e8d06f6ba [No types assigned] Added Reference Linux https://git.kernel.org/stable/c/0e2dfdc74a7f4036127356d42ea59388f153f42c [No types assigned] Added Reference Linux https://git.kernel.org/stable/c/53e0db429b37a32b8fc706d0d90eb4583ad13848 [No types assigned] Added Reference Linux https://git.kernel.org/stable/c/2cfa537674cd1051a3b8111536d77d0558f33d5d [No types assigned] Added Reference Linux https://git.kernel.org/stable/c/6eba92a4d4be8feb4dc33976abac544fa99d6ecc [No types assigned] Added Reference Linux https://git.kernel.org/stable/c/7cf64d8679ca1cb20cf57d6a88bfee79a0922a66 [No types assigned] Added Reference Linux https://git.kernel.org/stable/c/b9b34ddbe2076ade359cd5ce7537d5ed019e9807 [No types assigned]